#ifndef LECTEURCARACTERE_H_
#define LECTEURCARACTERE_H_

/*!
  - un LECTEURCARACTERE est definie par
  - Caractére courant
  - une ligne
  - une colonne
 */

#include <fstream>

/*! \file LecteurCaractere.h
    \brief La spécification de la classe LecteurCaractere
    \author Cedric Vierne et Sergio Vasquez
    \date 18.04.2011
 */

/*! \class LecteurCaractere
    \brief La classe représentant la lecture des caracteres
   
    Cette classe permet de parcourire un fichier texte et de lire les caracteres.
 */

using namespace std;

class LecteurCaractere {

  ////////////////////////////////////////////////////////////////////////////////
  public :
    /*! \fn LecteurCaractere(string nomFich)
        \brief Constructeur de la classe LecteurCaractere
       * Il construit le lecteur pour parcourir nomFich
       * \param nomFich - Nom du fichier
    */ 
    LecteurCaractere(string nomFich);

    /*! \fn inline char getCarCour() { return carCour;}
        \brief C'est un accesseur qui retourne le caractere courant.
        \return La valeur de carCour
    */
    inline char         getCarCour() { return carCour; }

    /*! \fn  inline unsigned int getLigne()   { return ligne;   }
        \brief C'est un accesseur qui retourne ligne.
        \return La valeur de ligne
    */
    inline unsigned int getLigne()   { return ligne;   }

    /*! \fn inline unsigned int getColonne() { return colonne; }
        \brief C'est un accesseur qui retourne colonne.
        \return La valeur de colonne
    */
    inline unsigned int getColonne() { return colonne; }


    /*! \fn suivant()
        \brief passe au caractere suivant, s'il existe
        \param Aucun
    */
    void suivant();

  ////////////////////////////////////////////////////////////////////////////////
  private :
    /*! \var ifstream f
     * \brief le fichier texte que l'on parcourt  
    */
    ifstream f;  
    
     /*! \var carCour
      *  \brief le caractere courant
      * 
    */
    char carCour;  
    
     /*! \var ligne
         \brief numero de ligne du caractere courant
    */
    unsigned int ligne;

     /*! \var colonne
      *  \brief numero de colonne du caractere courant
    */
    unsigned int colonne; // 
};

#endif /* LECTEURCARACTERE_H_ */
